package com.wwdeng.print.app.printer

import com.wwdeng.print.app.R
import org.json.JSONArray
import org.json.JSONObject

/**
 * PrintTestDemo
 * @Author：wwdeng
 * @CreateTime：2025/4/16 00:15
 * <pre>
 * 模拟各种订单数据
 * </pre>
 */
object TestPrintData {

    private val itemList = arrayListOf(
        "席料,330,2",
        "鶏ハツ串（2本~）,118,2",
        "豚舌串（2本～）,118,2",
        "コーラ,330,1",
        "デュワーズコーラハイボール,478,1",
        "特製ラム肉の香味揚げ,898,3",
        "豚の角煮,598,1",
        "青椒肉絲,398,1"
    )

    /**
     * 预结单
     */
    fun getPreOrderData(): JSONObject{
        val preOrderData = JSONObject()
        preOrderData.put("logoResId", R.mipmap.test_logo)
        preOrderData.put("storeTitle","マルヤス酒場 柏店")
        preOrderData.put("storeDesc","本日はご来店いただき誠にありがとうございました。またのお越しをお待ちしております")
        preOrderData.put("createTime",EscPosUtils.formatDate(System.currentTimeMillis(),"yyyy-MM-dd hh:mm:ss"))
        preOrderData.put("tableCode","888")
        preOrderData.put("count","5")
        preOrderData.put("totalNum","14")
        preOrderData.put("totalPrice","5960")

        //菜品列表
        val menuArray = getProductList()
        preOrderData.put("menuList",menuArray)

        preOrderData.put("loginCode","T3010503006787")
        preOrderData.put("loginName","合同会社マルヤス酒場相")
        preOrderData.put("address","〒277-0852千葉原伯市旭町1-5-3-2F柏ブラザホテル構内2F")
        preOrderData.put("mobile","04-7157-0889")

        return preOrderData
    }

    /**
     * 结账单
     */
    fun getSettlementOrderData(): JSONObject{
        val preOrderData = JSONObject()
        preOrderData.put("logoResId", R.mipmap.test_logo)
        preOrderData.put("storeTitle","マルヤス酒場 柏店")
        preOrderData.put("storeDesc","本日はご来店いただき誠にありがとうございました。またのお越しをお待ちしております")
        preOrderData.put("createTime",EscPosUtils.formatDate(System.currentTimeMillis(),"yyyy-MM-dd hh:mm:ss"))
        preOrderData.put("tableCode","888")
        preOrderData.put("count","5")
        preOrderData.put("totalNum","14")
        preOrderData.put("totalPrice","5960")
        preOrderData.put("qrCodeUrl","https://www.baidu.com")

        //菜品列表
        val menuArray = getProductList()
        preOrderData.put("menuList",menuArray)

        preOrderData.put("loginCode","T3010503006787")
        preOrderData.put("loginName","合同会社マルヤス酒場相")
        preOrderData.put("address","〒277-0852千葉原伯市旭町1-5-3-2F柏ブラザホテル構内2F")
        preOrderData.put("mobile","04-7157-0889")

        return preOrderData
    }

    /**
     * 发票
     */
    fun getInvoiceData(): JSONObject{
        val preOrderData = JSONObject()
        preOrderData.put("logoResId", R.mipmap.test_logo)
        preOrderData.put("storeTitle","マルヤス酒場 柏店")
        preOrderData.put("storeDesc","本日はご来店いただき誠にありがとうございました。またのお越しをお待ちしております")
        preOrderData.put("createTime",EscPosUtils.formatDate(System.currentTimeMillis(),"yyyy-MM-dd hh:mm:ss"))
        preOrderData.put("tableCode","888")
        preOrderData.put("count","5")
        preOrderData.put("totalNum","14")
        preOrderData.put("totalPrice","5960")
        preOrderData.put("tax","347")
        preOrderData.put("userName","testUserName")

        //菜品列表
        val menuArray = getProductList()
        preOrderData.put("menuList",menuArray)

        preOrderData.put("loginCode","T3010503006787")
        preOrderData.put("loginName","合同会社マルヤス酒場相")
        preOrderData.put("address","〒277-0852千葉原伯市旭町1-5-3-2F柏ブラザホテル構内2F")
        preOrderData.put("mobile","04-7157-0889")

        return preOrderData
    }

    /**
     * 后厨单
     */
    fun getKitchenData(): JSONObject{
        val orderData = JSONObject()
        orderData.put("createTime",EscPosUtils.formatDate(System.currentTimeMillis(),"yyyy-MM-dd hh:mm:ss"))
        orderData.put("tableCode","888")
        orderData.put("userCode","103")

        //菜品列表 模拟两个菜品
        val menuArray = JSONArray()
        for (i in 0..< 2){
            val itemSplit = itemList[i].split(",")
            val item = JSONObject()
            item.put("title",itemSplit[0])
            item.put("price",itemSplit[1])
            item.put("num",itemSplit[2])
            menuArray.put(item)
        }
        orderData.put("menuList",menuArray)

        return orderData
    }

    /**
     * 交班单
     */
    fun getHandoverData(): JSONObject{
        val orderData = JSONObject()
        orderData.put("logoResId", R.mipmap.test_logo)
        orderData.put("storeTitle","売上精算")
        orderData.put("createTime",EscPosUtils.formatDate(System.currentTimeMillis(),"yyyy-MM-dd hh:mm:ss"))
        orderData.put("operatorName","Admin")

        return orderData
    }

    /**
     * 菜单产品列表
     */
    private fun getProductList(): JSONArray{
        val menuArray = JSONArray()
        itemList.forEach {
            val itemSplit = it.split(",")
            val item = JSONObject()
            item.put("title",itemSplit[0])
            item.put("price",itemSplit[1])
            item.put("num",itemSplit[2])
            menuArray.put(item)
        }
        return menuArray
    }
}